// 路由的拦截处理 权限
// import { getUserInfoApi } from "./api/user";
import router from "./router";
import useUserStore from "./store/user";
import { message } from "ant-design-vue";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
// 1.判断是否登录
router.beforeEach((to, from, next) => {
  NProgress.start();
  // console.log(to, from, next);
  //除过 登陆页面
  if (to.path === "/login") {
    next();
  } else {
    const userStore = useUserStore();
    // 判断是否登陆了
    if (userStore.token) {
      //用户信息【用户 角色 状态】是否存在
      if (userStore.userInfo) {
        //存在
        if (!userStore.userInfo.status) {
          // 当前用户已被禁用
          message.warning("当前用户已被禁用！");
          next("/login");
        } else if (
          !userStore.userInfo.roles ||
          userStore.userInfo.roles.length === 0
        ) {
          // 没有分配角色 只能访问公共的页面信息
          message.warning("当前用户 暂无角色！");
          next();
        } else {
          next();
        }
      } else {
        //不存在-重新发起请求
        userStore
          .getUserInfo()
          .then((res) => {
            //拿到结果才放行
            next();
          })
          .catch((e) => {
            // 发送请求获取不到
            message.warning("无法获取用户信息");
            next("/login");
            console.log(e);
          });
      }
    } else {
      message.warning("暂无权限");
      //去登陆录页面
      next("/login");
    }
  }
});
router.afterEach(() => {
  // 结束进度条
  NProgress.done();
});
// 56：37！！！！
